home *** CD-ROM | disk | FTP | other *** search
-
- UltraSound SDK Revision History Updated: Dec. 21,1994
- ===============================
-
- Version 1.02 - First general release
-
- Version 1.03 - Fixed bug in UltraSetVolume()
-
- Version 1.04 - Fixed bug in UltraMaxAlloc()
-
- Version 1.05 - Linear volume functions are now linear.
- - Source files split up so objs are separate. This
- will make your code smaller.
- - Microsoft libraries provided.
- - Changed some prototypes from int to unsigned char.
- My lint checker liked ints better. The values
- were 8 bit so I set the prototyes appropriately.
- - Added support for 2 Adlib-type timers.
- - Included interrupt callback functions. These
- were done before but inadvertantly left out of
- the libraries.
-
- Version 1.06 - Added functions to return state of DMA channel(s)
- UltraDramDmaBusy,UltraSampleDmaBusy
- - Fixed potential problem with UltraPeekData and
- UltraPokeData
- - Fixed bug in UltraVoiceStopped and UltraVolumeStopped
- - Added an support functions for sending/recieving data
- thru midi port.
- Version 1.07 - Fixed bug in restoring the interrupt vectors when
- closing out the card. A benign problem for the most
- part. Deadly if irq 7 was used.
-
- Version 1.08 - Changed the upload & download functions to accept
- a far pointer to the buffer of data to send/receive.
- - Added some of the recording functions. More complete
- documentation to follow.
- - Fixed a bug in the download. Problem downloading if
- buffer ended on a 256K page boundary. The memory
- allocation structures would be blitzed.
- - IRQ and DMA channel's can now be NOT programmed for
- the board. If any of the parameters are set to 0,
- the corresponding latch on the board will be setup
- such that it will not be used. This will allow the
- application NOT to use up a PC resource. This can
- be handy if resources are tight.
-
- Version 1.09 - Documentation change. UltraPokeData takes 3 arguments.
- Prototype was correct, documentation was wrong.
- - Cleaned up documentation, added couple prototypes.
- - Added cdecl's for those who might need it.
-
- Version 1.10 - Added functions to allocate/deallocate voices. These
- could have been done by the application, but is useful
- to add here.
- - Fixed documentation on UltraMemFree(). Had arguments
- flipped.
- - Changed some of the source code to make recompiling for
- Watcom C.
-
- Version 2.00 - General documentation cleanup. Spelling, grammer etc..
- - Added a lot of hardware specific documentation
- (Theory of operation, register level defs etc)
- - Fixed bug in volume ramping. Problems when the ramp
- values are the same.
-
- Version 2.01 - Fixed bug in UltraAngPosition()
- - Changed init procedure to set locations 0&1 to 0. All
- voices point there & will cause problems if their
- volumes are raised. (clipping when they are summed
- in).
-
- Version 2.10 - UltraMidiEnableRecv and UltraMidiEnableXmit were flipped.
- They turned each other's IRQs on instead of their own.
- - UltraMidiDisableRecv and UltraMidiDisableXmit were flipped.
- They turned each other's IRQs off instead of their own.
- - Fixed documentation on UltraStartVoice. When playing a
- sample in reverse, the BEGIN location should be the
- largest, the start of the loop should be next and the
- end loop address should be the smallest.
- - Fixed bug in UltraStartVoice(). A sampled attack was
- not done properly. Playing a sample backwards was also
- incorrect.
- - Fixed documenation Appendix C. Bit 6 is the direction
- bit. 0 means increasing addresses. 1 means decreasing.
- It is not normally necessary to set this bit.
- UltraStartVoice will set it if the start address is
- greater than the end address.
- - Cleaned up the makefiles a bit.
- - Corrected doc on return values for UltraRecordDmaBusy()
- - Changed the segment group names for Borland tiny model.
- Makes a .sys driver easier.....
- - Fixed bug in UltraAlocVoice. Didn't init variable and
- could return OK when there were no free voices.
- - Moved some misc. global variables into _gf1_data struct
- - Changed initial mixer setting to everything disabled
- - Added support for the rollover bit
- - changed inportw to inpw
- outportw to outpw
- inport to inp
- outport to outp
- so it will compile with Borland C++ 3.1
- - Made functions use ANSI calling sequence.
- - Add support for rollover bit
- - Add support for Metaware High C compiler
- - Fixed bug in enabling irq in sampling code
- - changed DMA controller to use demand mode. This has no
- effect on current hardware. (vars.c)
- - PASCAL routines added by Kurt Kennett of Ingenuity
- Software. These routines are a direct analog translation.
- - The documentation was completely reworked to allow for
- this interface. As a result, new sections were added
- to chapter 1, chapter 3 was slimmed down, and the
- appendices were changed to accomodate both languages.
- The section with the least # of changes was chapter 2.
- - The addition of PASCAL calls and the total rework of
- the documentation justified a full minor revision
- update. (2.02 to 2.10).
-
- Version 2.11
- - Fixed bug in UltraSetVoiceMode. It would disable irqs
- on the voice.
- - Changes several functions to accept far pointers. This
- was necessary to support SS != DS (i.e. OS/2)
- - Fixed problem in UltraReadDmaPos(). Could hang if counter
- was not moving.
- - Fixed boundary bug in PrimeDma. Ending location was
- off by one.
- - Fixed some ROLLOVER problems. UltraSetVoiceEnd() and
- handle_voice() needed some tweeks.
- - Made UltraPing() look at two values to determine if card
- is present
- - Added prototypes for the handler's to gf1proto.h
- - irq.c changed MEATWARE to METAWARE
- - Fixed bug in PASCAL version : UltraGetVoice returned
- only one voice before not allowing any more voices to
- be allocated. Pascal 'LoadMod' example file fixed.
- Source code included in this version.
-
- Version 2.13
- - Changed the handler's prototypes to standard ones.
- - Minor changes so it will build with visual C++ (C8)
- - Added a couple new functions.
- UltraStopRecordDma()
- UltraStopPlayDma()
- - Changed Ultra16Xparent. Line level input too low.
- - Fixed bug in irq16.c. Wasn't clearing DMA busy flags.
- - Fixed off-by-one in GetRecordDmaPos(). Would make it look
- like it xferred more data than it did.
- - Changed board version checking to this
- 5 - ICS mixer. Some inputs are flipped
- 6-7 - ICS mixer. Iinputs all correct
- 8-11 - UltraMAX (No ICS mixer)
- 0x81 - 0x90 - GUS w/o line in and mic enables
- - Added channel mutes to ICS mixer code and UltraMixMute()
- function
- - Changed name of mixer.c icsmix.c
- - Added #defines to includes to allow them to be included
- multiple times.
- - Added MallocTinyAlignedBuff(). Small and Tiny model
- should use this to get a page-aligned buff.
- - Fixed malloc/farfree mismatch in MallocAlignedBuff()
- - Removed -Z options in makeborl for small model. Caused
- some null pointer problems on exit. Tiny model still
- uses them.....
-
- Version 2.20 - Pre-release at CES
-
- Version 2.21 - Changed WATCOM getvect and setvect routines to use
- _dos_getvect and _dos_setvect.
-
- Version 2.22 - Added information for popular high-level third party API's
- that support the UltraSound, as an alternative to directly
- programming the UltraSound.
- - General Cleanup
-